/**
 * 验证手机号
 * @param phone 手机号
 * @returns 是否有效
 */
export const isValidPhone = (phone: string): boolean => {
  const reg = /^1[3-9]\d{9}$/;
  return reg.test(phone);
};

/**
 * 验证身份证号
 * @param idCard 身份证号
 * @returns 是否有效
 */
export const isValidIdCard = (idCard: string): boolean => {
  const reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
  return reg.test(idCard);
};

/**
 * 验证密码强度
 * @param password 密码
 * @returns 强度级别 (1-弱, 2-中, 3-强)
 */
export const passwordStrength = (password: string): number => {
  if (!password || password.length < 6) return 0;

  // 密码长度评分
  let score = Math.min(password.length, 10) / 3;

  // 包含数字
  if (/\d/.test(password)) score += 1;

  // 包含小写字母
  if (/[a-z]/.test(password)) score += 1;

  // 包含大写字母
  if (/[A-Z]/.test(password)) score += 1;

  // 包含特殊字符
  if (/[^a-zA-Z0-9]/.test(password)) score += 1;

  // 返回强度级别
  if (score >= 4) return 3; // 强
  if (score >= 2.5) return 2; // 中
  return 1; // 弱
}; 